using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PACKETPARSERMAX20.CORE;

namespace PACKETPARSERMAX20.CORE.DEFINITIONS
{
    public class SMSG_ACTION_BUTTONS_DEF : DefinitionBase
    {
        
        public override bool Process()
        {
            return true; //WHEN YOU NEED IT ONLY

            ResetPosition();


            switch (ClientBuild)
            {
                case 6546: //{ return Process_6546(); }
                case 6692: //{ return Process_6692(); }
                case 6729: //{ return Process_6729(); }
                case 6739: //{ return Process_6739(); }
                case 6803: //{ return Process_6803(); }
                case 6898: //{ return Process_6898(); }
                case 7272: //{ return Process_7272(); }
                case 7318: //{ return Process_7318(); }
                case 7359: { return Process_7359(); }
                case 7561: //{ return Process_7561(); }
                case 7741: //{ return Process_7741(); }
                case 7799: //{ return Process_7799(); }
                case 8089: //{ return Process_8089(); }
                case 8125: //{ return Process_8125(); }
                case 8278: //{ return Process_8278(); }
                case 8606: { return Process_8606(); }
            }

            int buttons = 132;

            for (int button = 0; button < buttons; ++button)
            {
                UInt16 action = ReadUInt16();
                byte misc = ReadByte();
                byte type = ReadByte();
            }
            return Validate();
        }

        //internal bool Process_6546() { return Validate(); }
        //internal bool Process_6692() { return Validate(); }
        //internal bool Process_6729() { return Validate(); }
        //internal bool Process_6739() { return Validate(); }
        //internal bool Process_6803() { return Validate(); }
        //internal bool Process_6898() { return Validate(); }
        //internal bool Process_7272() { return Validate(); }
        //internal bool Process_7318() { return Validate(); }
        internal bool Process_7359() 
        {
            int buttons = 120;

            for (int button = 0; button < buttons; ++button)
            {
                UInt16 action = ReadUInt16();
                byte misc = ReadByte();
                byte type = ReadByte();
            }
            return Validate(); 
        }
        //internal bool Process_7561() { return Validate(); }
        //internal bool Process_7741() { return Validate(); }
        //internal bool Process_7799() { return Validate(); }
        //internal bool Process_8089() { return Validate(); }
        //internal bool Process_8125() { return Validate(); }
        //internal bool Process_8278() { return Validate(); }
        internal bool Process_8606()
        {
            int buttons = 132;

            for (int button = 0; button < buttons; ++button)
            {
                UInt16 action = ReadUInt16();
                byte misc = ReadByte();
                byte type = ReadByte();
            }
            return Validate();
        }
    }
}
